Skip to content

Software Development

12.1 Program Development Life cycle

Candidates should be able to:

  1. Show understanding of the purpose of a development life cycle
  2. Show understanding of the need for different development life cycles depending on the program being developed
  3. Describe the principles, benefits and drawbacks of each type of life cycle
  4. Show understanding of the analysis, design, coding, testing and maintenance stages in the program development life cycle

Notes and guidance

Including: waterfall, iterative, rapid application development (RAD)

12.2 Program Design

Candidates should be able to:

  1. Use a structure chart to decompose a problem into sub-tasks and express the parameters passed between the various modules / procedures / functions which are part of the algorithm design
  2. Show understanding of the purpose of state-transition diagrams to document an algorithm

Notes and guidance

  1. Describe the purpose of a structure chart
  2. Construct a structure chart for a given problem
  3. Derive equivalent pseudocode from a structure chart

12.3 Program Testing and Maintenance

Candidates should be able to:

  1. Show understanding of ways of exposing and avoiding faults in programs
  2. Locate and identify the different types of errors

Notes and guidance

  1. syntax errors
  2. logic errors
  3. run-time errors
  1. Correct identified errors
  2. Show understanding of the methods of testing available and select appropriate data for a given method

Notes and guidance

Including dry run, walkthrough, white-box, black- box, integration, alpha, beta, acceptance, stub

  1. Show understanding of the need for a test strategy and test plan and their likely contents
  2. Choose appropriate test data for a test plan

Notes and guidance

Including normal, abnormal and extreme/boundary

  1. Show understanding of the need for continuing maintenance of a system and the differences between each type of maintenance

Notes and guidance

Including perfective, adaptive, corrective maintenance

  1. Analyse an existing program and make amendments to enhance functionality